[INFO] cloning repository https://github.com/thepowersgang/rust-logiccircuit
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thepowersgang/rust-logiccircuit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthepowersgang%2Frust-logiccircuit", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthepowersgang%2Frust-logiccircuit'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 694d9bd1d92c220df3d8a52a4456741c8d035a2d
[INFO] fixing thepowersgang/rust-logiccircuit against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthepowersgang%2Frust-logiccircuit" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/thepowersgang/rust-logiccircuit
[INFO] finished tweaking git repo https://github.com/thepowersgang/rust-logiccircuit
[INFO] tweaked toml for git repo https://github.com/thepowersgang/rust-logiccircuit written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thepowersgang/rust-logiccircuit on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/thepowersgang/rust-logiccircuit already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `logiccircuit` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68
[INFO] running `Command { std: "docker" "start" "f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `logiccircuit` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.91
[INFO] [stderr]     Checking regex-syntax v0.6.23
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking regex v1.4.5
[INFO] [stderr]     Checking env_logger v0.8.3
[INFO] [stderr]     Checking logiccircuit v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2015 edition to 2018
[INFO] [stderr]        Fixed src/parse/mod.rs (26 fixes)
[INFO] [stderr]        Fixed src/elements.rs (8 fixes)
[INFO] [stderr]        Fixed src/cct_mesh/flat.rs (2 fixes)
[INFO] [stderr]        Fixed src/cct_mesh/mod.rs (8 fixes)
[INFO] [stderr]        Fixed src/main.rs (2 fixes)
[INFO] [stderr]        Fixed src/simulator.rs (8 fixes)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.43s
[INFO] [stderr] crater-edition-check: logiccircuit v0.0.1 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]     Checking logiccircuit v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/cct_mesh/mod.rs:303:18
[INFO] [stdout]     |
[INFO] [stdout] 303 |             let mut ele = r#try!(crate::elements::create(name, &*params, inputs.len()));
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 |             '1' ... '7' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:279:7
[INFO] [stdout]     |
[INFO] [stdout] 279 |         '1' ... '9' => {
[INFO] [stdout]     |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:6
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:16
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `exp_enum`
[INFO] [stdout]   --> src/parse/mod.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! exp_enum{
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `parse_try`
[INFO] [stdout]   --> src/parse/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | macro_rules! parse_try{
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:526:58
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout]     |                                                                ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 526 -         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout] 526 +         let limit = syntax_assert_get!(parser, TokNumber(v) => v, "Expected number after #testcase");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:527:57
[INFO] [stdout]     |
[INFO] [stdout] 527 |         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout]     |                                                               ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout] 527 +         let name = syntax_assert_get!(parser, TokString(v) => v, "Expected test name after execution limit");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/elements.rs:579:72
[INFO] [stdout]     |
[INFO] [stdout] 579 |         let ofs = 1 + (self.bits as usize) + index * (self.bussize as usize);;
[INFO] [stdout]     |                                                                              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<crate::elements::Element+'static>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<dyn crate::elements::Element+'static>
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/flat.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse/lex.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (::std::iter::Iterator<Item=char> + 'a);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stdout]    |                                  +++++                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<Element+'static>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<dyn Element+'static>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<crate::elements::Element+'static> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<dyn crate::elements::Element+'static> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<Element+'static>,String>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<dyn Element+'static>,String>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:211:23
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:444:23
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:502:23
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:571:23
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:624:23
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:672:23
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/cct_mesh/mod.rs:303:18
[INFO] [stdout]     |
[INFO] [stdout] 303 |             let mut ele = r#try!(crate::elements::create(name, &*params, inputs.len()));
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 |             '1' ... '7' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:279:7
[INFO] [stdout]     |
[INFO] [stdout] 279 |         '1' ... '9' => {
[INFO] [stdout]     |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:6
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:16
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `exp_enum`
[INFO] [stdout]   --> src/parse/mod.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! exp_enum{
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `parse_try`
[INFO] [stdout]   --> src/parse/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | macro_rules! parse_try{
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:526:58
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout]     |                                                                ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 526 -         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout] 526 +         let limit = syntax_assert_get!(parser, TokNumber(v) => v, "Expected number after #testcase");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:527:57
[INFO] [stdout]     |
[INFO] [stdout] 527 |         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout]     |                                                               ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout] 527 +         let name = syntax_assert_get!(parser, TokString(v) => v, "Expected test name after execution limit");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/elements.rs:579:72
[INFO] [stdout]     |
[INFO] [stdout] 579 |         let ofs = 1 + (self.bits as usize) + index * (self.bussize as usize);;
[INFO] [stdout]     |                                                                              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<crate::elements::Element+'static>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<dyn crate::elements::Element+'static>
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/flat.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse/lex.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (::std::iter::Iterator<Item=char> + 'a);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stdout]    |                                  +++++                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<Element> );
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<dyn Element> );
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<Element>
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<dyn Element>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:202:87
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<Element> );
[INFO] [stdout]     |                                                                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:212:33
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:245:101
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<Element> );
[INFO] [stdout]     |                                                                                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:255:33
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:304:33
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<Element+'static>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<dyn Element+'static>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<crate::elements::Element+'static> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<dyn crate::elements::Element+'static> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<Element+'static>,String>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<dyn Element+'static>,String>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:393:35
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<Element> )
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<dyn Element> )
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:211:23
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:403:31
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<Element>
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<dyn Element>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:435:99
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<Element> )
[INFO] [stdout]     |                                                                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<dyn Element> )
[INFO] [stdout]     |                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:444:23
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:502:23
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:571:23
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:624:23
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:672:23
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:562:65
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<Element> )
[INFO] [stdout]     |                                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<dyn Element> )
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:572:33
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:614:49
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<Element> )
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<dyn Element> )
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:625:33
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:663:78
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<Element> );
[INFO] [stdout]     |                                                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:673:33
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:745:33
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:795:14
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<Element> );
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<dyn Element> );
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<Element>
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<dyn Element>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:202:87
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<Element> );
[INFO] [stdout]     |                                                                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:212:33
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:245:101
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<Element> );
[INFO] [stdout]     |                                                                                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:255:33
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:304:33
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unit`
[INFO] [stdout]   --> src/elements.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn finalise(&mut self, unit: &crate::cct_mesh::Unit) {}
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_unit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:286:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn new(params: &[u64], n_inputs: usize) -> NewEleResult
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:393:35
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<Element> )
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<dyn Element> )
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn get_outputs(&self, n_inputs: usize) -> usize {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:403:31
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<Element>
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<dyn Element>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:435:99
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<Element> )
[INFO] [stdout]     |                                                                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<dyn Element> )
[INFO] [stdout]     |                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:562:65
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<Element> )
[INFO] [stdout]     |                                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<dyn Element> )
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:572:33
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:614:49
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<Element> )
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<dyn Element> )
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:625:33
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:663:78
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<Element> );
[INFO] [stdout]     |                                                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:673:33
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:745:33
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:795:14
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:782:25
[INFO] [stdout]     |
[INFO] [stdout] 782 |     fn new(params: &[u64], n_inputs: usize) -> NewEleResult
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExecLimit` is never used
[INFO] [stdout]  --> src/cct_mesh/flat.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type ExecLimit = u32;
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/cct_mesh/flat.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Node
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/cct_mesh/flat.rs:71:2
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Breakpoint
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 70 | {
[INFO] [stdout] 71 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breakpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!(f.to_string()),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!("{}", f.to_string()),
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/cct_mesh/mod.rs:680:20
[INFO] [stdout]     |
[INFO] [stdout] 680 |     pub fn iter_tests(&self) -> ::std::collections::hash_map::Iter<String,flat::Test>
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 680 |     pub fn iter_tests(&self) -> ::std::collections::hash_map::Iter<'_, String,flat::Test>
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/cct_mesh/flat.rs:143:22
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn iter_asserts(&self) -> ::std::slice::Iter<crate::cct_mesh::flat::TestAssert>
[INFO] [stdout]     |                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn iter_asserts(&self) -> ::std::slice::Iter<'_, crate::cct_mesh::flat::TestAssert>
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/simulator.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn new(mesh: &crate::cct_mesh::flat::Mesh) -> Engine
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn new(mesh: &crate::cct_mesh::flat::Mesh) -> Engine<'_>
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unit`
[INFO] [stdout]   --> src/elements.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn finalise(&mut self, unit: &crate::cct_mesh::Unit) {}
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_unit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:286:25
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn new(params: &[u64], n_inputs: usize) -> NewEleResult
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn get_outputs(&self, n_inputs: usize) -> usize {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:782:25
[INFO] [stdout]     |
[INFO] [stdout] 782 |     fn new(params: &[u64], n_inputs: usize) -> NewEleResult
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExecLimit` is never used
[INFO] [stdout]  --> src/cct_mesh/flat.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type ExecLimit = u32;
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/cct_mesh/flat.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Node
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/cct_mesh/flat.rs:71:2
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Breakpoint
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 70 | {
[INFO] [stdout] 71 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breakpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!(f.to_string()),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!("{}", f.to_string()),
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/cct_mesh/mod.rs:680:20
[INFO] [stdout]     |
[INFO] [stdout] 680 |     pub fn iter_tests(&self) -> ::std::collections::hash_map::Iter<String,flat::Test>
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 680 |     pub fn iter_tests(&self) -> ::std::collections::hash_map::Iter<'_, String,flat::Test>
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/cct_mesh/flat.rs:143:22
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn iter_asserts(&self) -> ::std::slice::Iter<crate::cct_mesh::flat::TestAssert>
[INFO] [stdout]     |                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn iter_asserts(&self) -> ::std::slice::Iter<'_, crate::cct_mesh::flat::TestAssert>
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/simulator.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn new(mesh: &crate::cct_mesh::flat::Mesh) -> Engine
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn new(mesh: &crate::cct_mesh::flat::Mesh) -> Engine<'_>
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.17s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr]     Checking logiccircuit v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2018 edition to 2021
[INFO] [stderr] error: errors present after applying fixes to crate `logiccircuit`
[INFO] [stderr]  --> src/elements.rs
[INFO] [stderr]  ::: src/parse/lex.rs
[INFO] [stderr]   = cause: error: incorrect parentheses around trait bounds
[INFO] [stderr]              --> src/parse/lex.rs:40:38
[INFO] [stderr]               |
[INFO] [stderr]            40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stderr]               |                                      ^                                     ^
[INFO] [stderr]               |
[INFO] [stderr]            help: fix the parentheses
[INFO] [stderr]               |
[INFO] [stderr]            40 - pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stderr]            40 + pub type InStream<'a> = &'a mut ((dyn ::std::iter::Iterator<Item=char> + 'a));
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 |             '1' ... '7' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `--force-warn ellipsis-inclusive-range-patterns` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:279:7
[INFO] [stdout]     |
[INFO] [stdout] 279 |         '1' ... '9' => {
[INFO] [stdout]     |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:6
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:16
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<crate::elements::Element+'static>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<dyn crate::elements::Element+'static>
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/flat.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse/lex.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (::std::iter::Iterator<Item=char> + 'a);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stdout]    |                                  +++++                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<Element+'static>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<dyn Element+'static>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<crate::elements::Element+'static> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<dyn crate::elements::Element+'static> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<Element+'static>,String>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<dyn Element+'static>,String>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:211:23
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:444:23
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:502:23
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:571:23
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:624:23
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:672:23
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<Element> );
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<dyn Element> );
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<Element>
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<dyn Element>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:202:87
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<Element> );
[INFO] [stdout]     |                                                                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:212:33
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:245:101
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<Element> );
[INFO] [stdout]     |                                                                                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:255:33
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:304:33
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:393:35
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<Element> )
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<dyn Element> )
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:403:31
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<Element>
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<dyn Element>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:435:99
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<Element> )
[INFO] [stdout]     |                                                                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<dyn Element> )
[INFO] [stdout]     |                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:562:65
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<Element> )
[INFO] [stdout]     |                                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<dyn Element> )
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:572:33
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:614:49
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<Element> )
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<dyn Element> )
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:625:33
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:663:78
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<Element> );
[INFO] [stdout]     |                                                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:673:33
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:745:33
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:795:14
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!(f.to_string()),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `--force-warn non-fmt-panics` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!("{}", f.to_string()),
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 18 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr] error: errors present after applying fixes to crate `logiccircuit`
[INFO] [stderr]  --> src/elements.rs
[INFO] [stderr]  ::: src/parse/lex.rs
[INFO] [stderr]   = cause: error: incorrect parentheses around trait bounds
[INFO] [stderr]              --> src/parse/lex.rs:40:38
[INFO] [stderr]               |
[INFO] [stderr]            40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stderr]               |                                      ^                                     ^
[INFO] [stderr]               |
[INFO] [stderr]            help: fix the parentheses
[INFO] [stderr]               |
[INFO] [stderr]            40 - pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stderr]            40 + pub type InStream<'a> = &'a mut ((dyn ::std::iter::Iterator<Item=char> + 'a));
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2021-compatibility`
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:350:23
[INFO] [stderr]                |
[INFO] [stderr]            350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stderr]                |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stderr]                | ------------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:340:72
[INFO] [stderr]                |
[INFO] [stderr]            340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stderr]                |                                                                                 ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]               --> src/elements.rs:351:33
[INFO] [stderr]                |
[INFO] [stderr]            351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stderr]                |                                       ^^^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stderr]                | ------------------------------------------------------------ in this macro invocation
[INFO] [stderr]                |
[INFO] [stderr]                = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]                = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 18 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 |             '1' ... '7' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `--force-warn ellipsis-inclusive-range-patterns` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:279:7
[INFO] [stdout]     |
[INFO] [stdout] 279 |         '1' ... '9' => {
[INFO] [stdout]     |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:6
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:16
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<crate::elements::Element+'static>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<dyn crate::elements::Element+'static>
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/flat.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cct_mesh/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse/lex.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (::std::iter::Iterator<Item=char> + 'a);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stdout]    |                                  +++++                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<Element+'static>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<dyn Element+'static>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cct_mesh/mod.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<crate::elements::Element+'static> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<dyn crate::elements::Element+'static> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/elements.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<Element+'static>,String>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<dyn Element+'static>,String>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:211:23
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:444:23
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:502:23
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:571:23
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:624:23
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:672:23
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<Element> );
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<dyn Element> );
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<Element>
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<dyn Element>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:202:87
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<Element> );
[INFO] [stdout]     |                                                                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:212:33
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:245:101
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<Element> );
[INFO] [stdout]     |                                                                                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:255:33
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:304:33
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.27s
[INFO] [stderr] crater-edition-check: logiccircuit v0.0.1 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:393:35
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<Element> )
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<dyn Element> )
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:403:31
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<Element>
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<dyn Element>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:435:99
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<Element> )
[INFO] [stdout]     |                                                                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<dyn Element> )
[INFO] [stdout]     |                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:562:65
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<Element> )
[INFO] [stdout]     |                                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<dyn Element> )
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:572:33
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:614:49
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<Element> )
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<dyn Element> )
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:625:33
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:663:78
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<Element> );
[INFO] [stdout]     |                                                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:673:33
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:745:33
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/elements.rs:795:14
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!(f.to_string()),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `--force-warn non-fmt-panics` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!("{}", f.to_string()),
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking logiccircuit v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]   --> src/main.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!(f.to_string()),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!("{}", f.to_string()),
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/cct_mesh/mod.rs:303:18
[INFO] [stdout]     |
[INFO] [stdout] 303 |             let mut ele = r#try!(crate::elements::create(name, &*params, inputs.len()));
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 |             '1' ... '7' => {
[INFO] [stdout]     |             ^^^^---^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:279:3
[INFO] [stdout]     |
[INFO] [stdout] 279 |         '1' ... '9' => {
[INFO] [stdout]     |         ^^^^---^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:3
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |         ^^^---^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:13
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |                   ^^^---^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `exp_enum`
[INFO] [stdout]   --> src/parse/mod.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! exp_enum{
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `parse_try`
[INFO] [stdout]   --> src/parse/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | macro_rules! parse_try{
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:526:58
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout]     |                                                                ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 526 -         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout] 526 +         let limit = syntax_assert_get!(parser, TokNumber(v) => v, "Expected number after #testcase");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:527:57
[INFO] [stdout]     |
[INFO] [stdout] 527 |         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout]     |                                                               ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout] 527 +         let name = syntax_assert_get!(parser, TokString(v) => v, "Expected test name after execution limit");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/elements.rs:579:72
[INFO] [stdout]     |
[INFO] [stdout] 579 |         let ofs = 1 + (self.bits as usize) + index * (self.bussize as usize);;
[INFO] [stdout]     |                                                                              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/cct_mesh/mod.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<crate::elements::Element+'static>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<dyn crate::elements::Element+'static>
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/cct_mesh/flat.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/cct_mesh/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/parse/lex.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (::std::iter::Iterator<Item=char> + 'a);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stdout]    |                                  +++++                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]   --> src/main.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!(f.to_string()),
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Err(f) => panic!("{}", f.to_string()),
[INFO] [stdout]    |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/cct_mesh/mod.rs:303:18
[INFO] [stdout]     |
[INFO] [stdout] 303 |             let mut ele = r#try!(crate::elements::create(name, &*params, inputs.len()));
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 |             '1' ... '7' => {
[INFO] [stdout]     |             ^^^^---^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:279:3
[INFO] [stdout]     |
[INFO] [stdout] 279 |         '1' ... '9' => {
[INFO] [stdout]     |         ^^^^---^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:3
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |         ^^^---^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0783]: `...` range patterns are deprecated
[INFO] [stdout]    --> src/parse/lex.rs:283:13
[INFO] [stdout]     |
[INFO] [stdout] 283 |         'a'...'z'|'A'...'Z'|'_' => {
[INFO] [stdout]     |                   ^^^---^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `exp_enum`
[INFO] [stdout]   --> src/parse/mod.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! exp_enum{
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `parse_try`
[INFO] [stdout]   --> src/parse/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | macro_rules! parse_try{
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:526:58
[INFO] [stdout]     |
[INFO] [stdout] 526 |         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout]     |                                                                ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 526 -         let limit = syntax_assert_get!(parser, TokNumber(v) => (v), "Expected number after #testcase");
[INFO] [stdout] 526 +         let limit = syntax_assert_get!(parser, TokNumber(v) => v, "Expected number after #testcase");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/parse/mod.rs:527:57
[INFO] [stdout]     |
[INFO] [stdout] 527 |         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout]     |                                                               ^ ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 527 -         let name = syntax_assert_get!(parser, TokString(v) => (v), "Expected test name after execution limit");
[INFO] [stdout] 527 +         let name = syntax_assert_get!(parser, TokString(v) => v, "Expected test name after execution limit");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/elements.rs:579:72
[INFO] [stdout]     |
[INFO] [stdout] 579 |         let ofs = 1 + (self.bits as usize) + index * (self.bussize as usize);;
[INFO] [stdout]     |                                                                              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/cct_mesh/mod.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<crate::elements::Element+'static>
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Clone for Box<dyn crate::elements::Element+'static>
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/cct_mesh/flat.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/cct_mesh/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<crate::elements::Element+'static>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 36 |     inst: Box<dyn crate::elements::Element+'static>,
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/parse/lex.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (::std::iter::Iterator<Item=char> + 'a);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub type InStream<'a> = &'a mut (dyn (::std::iter::Iterator<Item=char> + 'a));
[INFO] [stdout]    |                                  +++++                                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/elements.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<Element+'static>,String>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<dyn Element+'static>,String>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/elements.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<Element+'static>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<dyn Element+'static>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:211:23
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:444:23
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:502:23
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:571:23
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:624:23
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:672:23
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/cct_mesh/mod.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<crate::elements::Element+'static> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<dyn crate::elements::Element+'static> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/elements.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<Element+'static>,String>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type NewEleResult = Result<Box<dyn Element+'static>,String>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/elements.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<Element+'static>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn dup(&self) -> Box<dyn Element+'static>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:211:23
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:402:23
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 402 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:444:23
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:502:23
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:571:23
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:624:23
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:672:23
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 744 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<Element+'static> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 808 |     fn dup(&self) -> Box<dyn Element+'static> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/cct_mesh/mod.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<crate::elements::Element+'static> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn clone(&self) -> Box<dyn crate::elements::Element+'static> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<Element> );
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<dyn Element> );
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<Element>
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<dyn Element>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:202:87
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<Element> );
[INFO] [stdout]     |                                                                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:212:33
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:245:101
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<Element> );
[INFO] [stdout]     |                                                                                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:255:33
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:304:33
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<Element> );
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 158 |         return Ok( Box::new(ElementENABLE) as Box<dyn Element> );
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:168:34
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<Element>
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Box::new(ElementENABLE) as Box<dyn Element>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:202:87
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<Element> );
[INFO] [stdout]     |                                                                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 202 |         return Ok( Box::new(ElementPULSE { dir_is_falling: dir, last_value: false }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:212:33
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 212 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:245:101
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<Element> );
[INFO] [stdout]     |                                                                                                           ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 245 |         return Ok( Box::new(ElementHOLD { hold_time: time, times: crate::from_elem(n_inputs, 0) }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:255:33
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 255 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:304:33
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 304 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 | def_logic!{ ElementNXOR, false, |v:bool,i:bool| v^i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 | def_logic!{ ElementNAND, true,  |v:bool,i:bool| v&i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:393:35
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<Element> )
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<dyn Element> )
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:403:31
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<Element>
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<dyn Element>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 | def_logic!{ ElementNOR,  false, |v:bool,i:bool| v|i, |v:bool| !v }
[INFO] [stdout]     | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:435:99
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<Element> )
[INFO] [stdout]     |                                                                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<dyn Element> )
[INFO] [stdout]     |                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 | def_logic!{ ElementXOR,  false, |v:bool,i:bool| v^i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 | def_logic!{ ElementAND,  true,  |v:bool,i:bool| v&i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:340:72
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Ok( Box::new($name { bussize: bussize, buscount: buscount }) as Box<Element> )
[INFO] [stdout]     |                                                                                 ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | def_logic!{ ElementOR,   false, |v:bool,i:bool| v|i, |v| v }
[INFO] [stdout]     | ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `def_logic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:562:65
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<Element> )
[INFO] [stdout]     |                                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<dyn Element> )
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:572:33
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:393:35
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<Element> )
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Ok( Box::new(ElementNOT) as Box<dyn Element> )
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:403:31
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<Element>
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 403 |         Box::new(ElementNOT) as Box<dyn Element>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:614:49
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<Element> )
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<dyn Element> )
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:435:99
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<Element> )
[INFO] [stdout]     |                                                                                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 435 |         Ok( Box::new(ElementLATCH { vals: crate::from_elem(size, false), ..Default::default() }) as Box<dyn Element> )
[INFO] [stdout]     |                                                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:625:33
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 445 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:663:78
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<Element> );
[INFO] [stdout]     |                                                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 503 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:673:33
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:745:33
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:562:65
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<Element> )
[INFO] [stdout]     |                                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 562 |         Ok( Box::new(ElementMUX{bits: bits, bussize: bussize}) as Box<dyn Element> )
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:572:33
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 572 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:614:49
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<Element> )
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 614 |         Ok( Box::new(ElementDEMUX{bits: bits}) as Box<dyn Element> )
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:795:14
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:625:33
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 625 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:663:78
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<Element> );
[INFO] [stdout]     |                                                                                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 663 |         return Ok( Box::new(ElementSEQUENCER { count: count, position: 0 }) as Box<dyn Element> );
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:673:33
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 673 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:735:14
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 735 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:745:33
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<Element>
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 745 |         Box::new(self.clone()) as Box<dyn Element>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/elements.rs:795:14
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<Element> )
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 795 |             }) as Box<dyn Element> )
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unit`
[INFO] [stdout]   --> src/elements.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn finalise(&mut self, unit: &crate::cct_mesh::Unit) {}
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_unit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn get_outputs(&self, n_inputs: usize) -> usize {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unit`
[INFO] [stdout]   --> src/elements.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn finalise(&mut self, unit: &crate::cct_mesh::Unit) {}
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_unit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_inputs`
[INFO] [stdout]    --> src/elements.rs:299:24
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn get_outputs(&self, n_inputs: usize) -> usize {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0782, E0783.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0782`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0782, E0783.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0782`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `logiccircuit` (bin "logiccircuit" test) due to 65 previous errors; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `logiccircuit` (bin "logiccircuit") due to 65 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68", kill_on_drop: false }`
[INFO] [stdout] f27cf1b2d2d17cf2bf85475668c13def9073bfdaf740837add253b460a205f68
